/**
 * 
 */
package com.ls.lsqc.modules.sys.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ls.lsqc.common.persistence.Page;
import com.ls.lsqc.common.service.CrudService;
import com.ls.lsqc.modules.sys.dao.BrandDao;
import com.ls.lsqc.modules.sys.entity.Brand;


/**
  * @ClassName: BrandService
  * @Description: 客户品牌保存 更新 删除
  * 
  * @author 秦玉峰
  * @date 2017年04月14日 下午4:21:31
  *
  */

@Service
@Transactional(readOnly = true)
public class BrandService extends CrudService<BrandDao, Brand> {
    @Autowired
    private BrandDao branddao;
    
    
    
    /**
	 * ID查询一条数据
	 * 
	 * @param brand
	 * @return
	 */
    public Brand findShuJuCode(Brand brand){
    	
    	return branddao.get(brand);
    }
    
    /**
      * @Title: findList
      * @Description: 查询字段类型列表
      * @param @param page
      * @param @param brand
      * @param @return
      * @return Page<Brand> 
      * @throws
      */
    
    public Page<Brand> findList(Page<Brand> page, Brand brand) {
        // 设置分页参数
    	brand.setPage(page);
        // 执行分页查询
        page.setList(branddao.findList(brand));
        
        return page;
    }

    
    /**
     * @Title: findShowDict
     * @Description: 查询子项目
     * @param @param page
     * @param @param brand
     * @param @return
     * @return List<Brand> 
     * @throws
     */
   
    public List<Brand> findListDict(Brand brand) {
    	  // 执行查询
        return branddao.findListDict(brand);
   }
    

	/**
	  * @Title: saveBrand
	  * @Description: 保存基准数据
	  * @param @param brand
	  * @return void 
	  * @throws
	  */
	@Transactional(readOnly = false)
	public void saveBrand(Brand brand) {
		
		// 判断新建编辑
		//若为null 执行插入语句（新建）
		if (brand.getId()==null){
			brand.preInsert();
			branddao.insert(brand);
			
		// 编辑
		}else{
			// 更新数据
			brand.preUpdate();
			branddao.update(brand);
		}
	}
    
	/**
	  * @Title: deleteBrand
	  * @Description: 删除基准数据(逻辑删除)
	  * @param @param brand
	  * @return void 
	  * @throws
	  */
	
	@Transactional(readOnly = false)
	public void deleteBrand(Brand brand) {

		// 执行逻辑删除
		branddao.delete(brand);
		
	}
	

	/**
	  * @Title: getBrandCn
	  * @Description: 
	  * @param brandCn
	  */
	public Brand getBrandCn(String brandCn) {
		
		// 实力化
		Brand brand = new Brand();
		brand.setBrandCn(brandCn);
		
		// 通过数据值和数据代码查询
		return branddao.getByItemCode(brand);
	}
}
